from PublicReference.base import *


class 职业主动技能(主动技能):
    技能施放时间 = 0.0
    脱手 = 1
    data0 = []
    data1 = []
    data2 = []
    data3 = []
    data4 = []
    data5 = []
    data6 = []

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        if len(self.data0) >= self.等级 and len(self.data0) > 0:
            等效倍率 += self.data0[self.等级] * self.攻击次数
        if len(self.data1) >= self.等级 and len(self.data1) > 0:
            等效倍率 += self.data1[self.等级] * self.攻击次数2
        if len(self.data2) >= self.等级 and len(self.data2) > 0:
            等效倍率 += self.data2[self.等级] * self.攻击次数3
        if len(self.data3) >= self.等级 and len(self.data3) > 0:
            等效倍率 += self.data3[self.等级] * self.攻击次数4
        if len(self.data4) >= self.等级 and len(self.data4) > 0:
            等效倍率 += self.data4[self.等级] * self.攻击次数5
        if len(self.data5) >= self.等级 and len(self.data5) > 0:
            等效倍率 += self.data5[self.等级] * self.攻击次数6
        if len(self.data6) >= self.等级 and len(self.data6) > 0:
            等效倍率 += self.data6[self.等级] * self.攻击次数7
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率

class 技能0(职业主动技能):
    名称 = '烟尘弹'
    所在等级 = 10
    等级上限 = 60
    基础等级 = 48
    攻击次数 = 6
    CD = 6
    data0 =[0,406, 447, 488, 529, 570, 612, 653, 694, 735, 776, 817, 858, 900, 941, 982, 1023, 1064, 1105, 1146, 1188, 1229, 1270, 1311, 1352, 1394, 1435, 1477, 1518, 1559, 1600, 1641, 1682, 1723, 1765, 1806, 1847, 1888, 1929, 1970, 2011, 2053, 2094, 2135, 2176, 2217, 2258, 2299, 2342, 2383, 2424, 2465, 2506, 2547, 2588, 2630, 2671, 2712, 2753, 2794, 2835, 2876, 2918, 2959, 3000, 3041, 3082, 3123, 3164, 3207, 3248]
    TP成长 = 0.08
    TP上限 = 7


class 技能1(职业主动技能):
    名称 = '刺踢'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46
    # 物理攻击力：<data0>%
    data0 = [int(i*1.235) for i in [0, 2321, 2556, 2793, 3027, 3262, 3499, 3733, 3970, 4205, 4439, 4676, 4912, 5149, 5383, 5618, 5855, 6089, 6326, 6561, 6795, 7032, 7267, 7504, 7738, 7973, 8210, 8444, 8681, 8916, 9154, 9389, 9623, 9860, 10095, 10331, 10566, 10801, 11037, 11272, 11508, 11744, 11978, 12215, 12450, 12685, 12921, 13156, 13391, 13627, 13863, 14099, 14333, 14569, 14805, 15040, 15275, 15511, 15746, 15982, 16218, 16452, 16688, 16924, 17160, 17395, 17630, 17867, 18103, 18338, 18574]]
    CD = 4.4
    TP成长 = 0.08
    TP上限 = 5


class 技能2(职业主动技能):
    名称 = '致命射击'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46
    # 基础 = 1281.30
    # 成长 = 144.70
    CD = 6.2
    TP成长 = 0.1
    TP上限 = 5
    data0 = [int(i*1.193) for i in [0, 1599, 1760, 1923, 2085, 2248, 2409, 2572, 2734, 2896, 3058, 3221, 3382, 3545, 3707, 3870, 4031, 4194, 4356, 4518, 4680, 4843, 5004, 5167, 5329, 5492, 5653, 5816, 5978, 6140, 6302, 6465, 6626, 6789, 6951, 7114, 7275, 7438, 7600, 7762, 7924, 8087, 8248, 8411, 8573, 8735, 8897, 9060, 9222, 9384, 9546, 9709, 9870, 10033, 10195, 10357, 10519, 10682, 10845, 11006, 11169, 11331, 11492, 11655, 11818, 11979, 12142, 12304, 12467, 12628, 12791]]
    攻击次数 = 1

class 技能3(被动技能):
    名称 = '左轮奥义'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.0 + 0.02 * self.等级, 5)

    def 物理攻击力倍率(self, 武器类型):
        return self.加成倍率(武器类型)


class 技能4(被动技能):
    名称 = '花式枪术'
    所在等级 = 20
    等级上限 = 20
    基础等级 = 10

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            if self.等级 <= 10:
                return round(1 + 0.01 * self.等级, 5)
            else:
                return round(1.1 + 0.02 * (self.等级 - 10), 5)


class 技能5(主动技能):
    名称 = '锁链截击'
    所在等级 = 25
    学习间隔 = 3
    SP消耗 = 25
    等级上限 = 60
    学习上限 = 50
    基础等级 = min(int((105 - 所在等级) / 学习间隔 + 1), 学习上限)
    CD = 5.0
    data = [
        # 0  第1击多段攻击力 : <data0>%
        [int(i*1.0) for i in [0, 556, 645, 734, 822, 911, 1000, 1089, 1177, 1266, 1355, 1444, 1532, 1621, 1710, 1799, 1887, 1976, 2065, 2154, 2242, 2331, 2420, 2509, 2597, 2686, 2775, 2863, 2952, 3041,
                              3130, 3218, 3307, 3396, 3485, 3573, 3662, 3751, 3840, 3928, 4017, 4106, 4195, 4283, 4372, 4461, 4550, 4638, 4727, 4816, 4905, 4993, 5082, 5171, 5260, 5348, 5437, 5526, 5615, 5703, 5792]],
        # 1  第2击攻击力 : <data1>%
        [int(i*1.0) for i in [0, 834, 968, 1101, 1234, 1367, 1500, 1633, 1766, 1899, 2033, 2166, 2299, 2432, 2565, 2698, 2831, 2964, 3097, 3231, 3364, 3497, 3630, 3763, 3896, 4029, 4162, 4295, 4429,
                              4562, 4695, 4828, 4961, 5094, 5227, 5360, 5494, 5627, 5760, 5893, 6026, 6159, 6292, 6425, 6558, 6692, 6825, 6958, 7091, 7224, 7357, 7490, 7623, 7757, 7890, 8023, 8156, 8289, 8422, 8555, 8688]],
        # 2  第3击攻击力 : <data2>%
        [int(i*1.0) for i in [0, 834, 968, 1101, 1234, 1367, 1500, 1633, 1766, 1899, 2033, 2166, 2299, 2432, 2565, 2698, 2831, 2964, 3097, 3231, 3364, 3497, 3630, 3763, 3896, 4029, 4162, 4295, 4429,
                              4562, 4695, 4828, 4961, 5094, 5227, 5360, 5494, 5627, 5760, 5893, 6026, 6159, 6292, 6425, 6558, 6692, 6825, 6958, 7091, 7224, 7357, 7490, 7623, 7757, 7890, 8023, 8156, 8289, 8422, 8555, 8688]],
    ]

    # index：   0      1      2
    rate = [1.000, 1.000, 1.000]
    hits = [5.000, 1.000, 1.000]

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.hits)):
            sum += self.data[i][self.等级] * self.rate[i] * self.hits[i]
        return self.倍率 * sum


"""
数据描述(已匹配)：
第1击多段攻击力 : <data0>%
第1击多段攻击间隔 : 0.2秒
第2击攻击力 : <data1>%
第3击攻击力 : <data2>%
技能描述：
    使枪刃往垂直方向旋转， 并聚集周围的敌人。 施放技能时， 若再次激活技能键， 则可以将敌人推开； 若此时第二次激活技能键， 则可以将推开的敌人吸附到身边。
    #95被动新增:
    锁链截击
    删除第一打的多段攻击力，使用时发动2，3打后向前方射击.
    射击攻击力为1打多段攻击力的一定比率.
"""


class 技能6(职业主动技能):
    名称 = '音速劫击'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    CD = 4.4
    TP成长 = 0.1
    TP上限 = 5
    data0 = [int(i*1.193) for i in [0, 1199, 1321, 1443, 1564, 1686, 1808, 1929, 2051, 2172, 2294, 2417, 2538, 2660, 2782, 2903, 3025, 3146, 3268, 3389, 3511, 3634, 3755, 3877, 3999, 4120, 4242, 4363, 4485, 4607, 4728, 4851, 4972, 5094, 5216, 5337, 5459, 5580, 5702, 5824, 5945, 6068, 6190, 6311, 6433, 6554, 6676, 6797, 6919, 7041, 7162, 7285, 7407, 7528, 7650, 7771, 7893, 8015, 8136, 8258, 8379, 8502, 8624, 8745, 8867, 8988, 9110, 9232, 9353, 9475, 9596]]
    攻击次数 = 3


"""
#95被动新增:
音速截击
突进攻击不再浮空，在突进攻击完成后向后射击.
射击攻击力为突进攻击力的一定比率.
"""


class 技能7(主动技能):
    名称 = '致命回射'
    所在等级 = 30
    等级上限 = 1
    基础等级 = 1
    CD = 12.5


class 技能8(职业主动技能):
    名称 = '枪舞'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    data0 = [int(i*1.193) for i in [0, 273, 301, 329, 357, 384, 412, 440, 468, 496, 523, 551, 579, 607, 635, 662, 690, 718, 746, 774, 801, 829, 857, 885, 913, 940, 968, 996, 1024, 1051, 1079, 1107, 1135, 1163, 1190, 1218, 1246, 1274, 1302, 1329, 1357, 1385, 1413, 1441, 1468, 1496, 1524, 1552, 1580, 1607, 1635, 1663, 1692, 1720, 1747, 1775, 1803, 1831, 1859, 1886, 1914, 1942, 1970, 1998, 2025, 2053, 2081, 2109, 2137, 2164, 2192]]
    攻击次数 = 20
    data1 = [int(i*1.193) for i in [0, 486, 536, 586, 635, 684, 734, 783, 833, 882, 931, 981, 1031, 1079, 1129, 1179, 1227, 1277, 1327, 1376, 1425, 1475, 1524, 1574, 1624, 1672, 1722, 1772, 1822, 1870, 1920, 1970, 2018, 2068, 2118, 2167, 2216, 2266, 2315, 2365, 2414, 2463, 2513, 2563, 2611, 2661, 2711, 2760, 2809, 2859, 2908, 2958, 3007, 3057, 3106, 3156, 3205, 3254, 3304, 3354, 3402, 3452, 3502, 3550, 3600, 3650, 3699, 3748, 3798, 3847, 3897]]
    攻击次数2 = 9
    CD = 17.6
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.CD *= 0.9
            self.攻击次数 = 0
            self.攻击次数2 *= (2 * 1.39)
        elif x == 1:
            self.CD *= 0.9
            self.攻击次数 = 0
            self.攻击次数2 *= (2 * 1.49)

class 技能9(职业主动技能):
    名称 = '移动射击'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    data0 = [int(i*1.140) for i in [0, 487, 535, 585, 634, 683, 733, 782, 832, 881, 930, 980, 1030, 1078, 1128, 1178, 1227, 1276, 1325, 1375, 1424, 1473, 1523, 1573, 1621, 1671, 1721, 1770, 1819, 1868, 1918, 1968, 2016, 2066, 2116, 2164, 2214, 2264, 2313, 2362, 2412, 2461, 2511, 2559, 2609, 2659, 2707, 2757, 2807, 2856, 2905, 2955, 3004, 3054, 3102, 3152, 3202, 3252, 3300, 3350, 3399, 3448, 3498, 3547, 3597, 3646, 3695, 3745, 3795, 3843, 3893]]
    攻击次数 = 30
    CD = 24.3
    TP成长 = 0.10
    TP上限 = 5

class 技能10(职业主动技能):
    名称 = '多重射击'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    data0 = [int(i*1.300) for i in [0, 2080, 2291, 2501, 2713, 2923, 3135, 3346, 3556, 3768, 3978, 4190, 4401, 4611, 4823, 5034, 5245, 5456, 5666, 5878, 6089, 6300, 6511, 6722, 6933, 7144, 7356, 7566, 7777, 7988, 8199, 8411, 8621, 8832, 9044, 9254, 9466, 9676, 9887, 10099, 10309, 10521, 10731, 10942, 11154, 11364, 11576, 11787, 11997, 12209, 12419, 12631, 12842, 13052, 13264, 13475, 13686, 13897, 14107, 14319, 14530, 14741, 14952, 15163, 15374, 15585, 15797, 16007, 16218, 16429, 16640]]
    攻击次数 = 5
    CD = 19.8
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 = 1.18
        elif x == 1:
            self.倍率 = 1.27

class 技能11(职业主动技能):
    名称 = '双鹰回旋'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    # 第1次物理攻击力：<data0>%
    data0 = [int(i*1.0) for i in [0, 519, 571, 624, 676, 729, 782, 834, 887, 940, 992, 1045, 1097, 1151, 1203, 1255, 1308, 1361, 1414, 1466, 1518, 1572, 1624, 1677, 1729, 1783, 1835, 1887, 1940, 1993, 2046, 2098, 2150, 2204,
                                  2256, 2309, 2361, 2415, 2467, 2519, 2572, 2625, 2678, 2730, 2782, 2836, 2888, 2940, 2993, 3046, 3099, 3151, 3203, 3257, 3309, 3362, 3414, 3468, 3520, 3572, 3625, 3678, 3731, 3783, 3835, 3889, 3941, 3994, 4046, 4100, 4152]]
    # 第2次物理攻击力：<data1>%
    data1 = [int(i*1.0) for i in [0, 530, 583, 637, 691, 745, 798, 852, 907, 960, 1014, 1067, 1121, 1176, 1229, 1283, 1336, 1390, 1445, 1498, 1552, 1605, 1659, 1714, 1767, 1821, 1874, 1928, 1983, 2036, 2090, 2143, 2197, 2251,
                                  2305, 2359, 2412, 2466, 2520, 2574, 2628, 2681, 2735, 2789, 2843, 2896, 2950, 3004, 3058, 3112, 3165, 3219, 3273, 3327, 3381, 3434, 3488, 3543, 3596, 3650, 3703, 3757, 3812, 3865, 3919, 3972, 4026, 4081, 4134, 4188, 4241]]
    # 第3次物理攻击力：<data2>%
    data2 = [int(i*1.0) for i in [0, 562, 619, 676, 733, 790, 847, 904, 962, 1019, 1076, 1133, 1190, 1247, 1303, 1360, 1417, 1474, 1532, 1589, 1646, 1703, 1760, 1817, 1874, 1931, 1988, 2046, 2103, 2160, 2217, 2274, 2331, 2388,
                                  2444, 2501, 2559, 2616, 2673, 2730, 2787, 2844, 2901, 2958, 3015, 3073, 3130, 3187, 3244, 3301, 3358, 3415, 3472, 3530, 3585, 3643, 3700, 3757, 3814, 3871, 3928, 3985, 4042, 4100, 4157, 4214, 4271, 4328, 4385, 4442, 4499]]
    攻击次数 = 14
    攻击次数2 = 18
    攻击次数3 = 32
    CD = 44.6
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 = 0
            self.攻击次数2 = 24
            self.攻击次数3 = 46
            # self.倍率 *= 1.15
            # self.倍率 /= 0.8
        elif x == 1:
            self.攻击次数 = 0
            self.data1 = [int(i*1.2) for i in self.data1]
            self.攻击次数2 = 24
            self.攻击次数3 = 46


class 技能12(被动技能):
    名称 = '隐匿切割'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.065 + 0.02 * self.等级, 5)


class 技能13(职业主动技能):
    名称 = '血腥狂欢'
    所在等级 = 50
    等级上限 = 40
    基础等级 = 12
    # 向前斩击物理攻击力：<data0>%
    data0 = [int(i*1.193) for i in [0, 2029, 2500, 2970, 3440, 3911, 4382, 4852, 5323, 5793, 6264, 6735, 7205, 7675, 8146, 8617, 9087, 9558, 10028, 10499, 10969, 11440, 11912, 12383, 12853, 13323, 13794, 14265, 14736, 15205, 15676, 16147, 16618, 17087, 17558, 18029, 18500, 18971, 19440, 19911, 20382]]
    # 该次数存疑
    攻击次数 = 24
    # 最后一击攻击力：<data1>%
    data1 = [int(i*1.193) for i in [0, 6019, 7415, 8811, 10207, 11603, 12998, 14395, 15790, 17187, 18583, 19977, 21374, 22770, 24167, 25562, 26958, 28353, 29749, 31146, 32542, 33938, 35334, 36728, 38125, 39521, 40918, 42313, 43708, 45105, 46500, 47897, 49293, 50689, 52084, 53480, 54876, 56272, 57669, 59063, 60459]]
    攻击次数2 = 1
    CD = 145


class 技能14(职业主动技能):
    名称 = '鲜血劫击'
    所在等级 = 60
    等级上限 = 40
    基础等级 = 23
    # 上升物理攻击力：<data0>%
    data0 = [int(i*1.292) for i in [0, 7572, 8341, 9109, 9878, 10646, 11413, 12182, 12950, 13719, 14487, 15256, 16023, 16792, 17560, 18329, 19097, 19865, 20634, 21401, 22170, 22938, 23707, 24475, 25244, 26011, 26780, 27548, 28316, 29085, 29852, 30621, 31389, 32158, 32926, 33695, 34462, 35231, 35999, 36768, 37536, 38304, 39072, 39840, 40609, 41377, 42146, 42914, 43682, 44450, 45219, 45987, 46755, 47524, 48291, 49060, 49828, 50597, 51365, 52134, 52901, 53670, 54438, 55206, 55975, 56742, 57511, 58279, 59048, 59816, 60585]]
    # [新月斩击]物理攻击力：<data1>%
    data1 = [int(i*1.292) for i in [0, 8485, 9345, 10205, 11066, 11927, 12788, 13649, 14509, 15370, 16231, 17092, 17953, 18814, 19674, 20534, 21395, 22256, 23117, 23978, 24839, 25700, 26561, 27421, 28282, 29142, 30003, 30864, 31725, 32585, 33446, 34307, 35168, 36029, 36890, 37751, 38610, 39471, 40332, 41193, 42054, 42915, 43776, 44636, 45497, 46358, 47219, 48079, 48940, 49801, 50661, 51522, 52383, 53244, 54105, 54966, 55827, 56688, 57547, 58408, 59269, 60130, 60991, 61852, 62712, 63573, 64434, 65295, 66156, 67017, 67877]]
    攻击次数 = 1
    攻击次数2 = 1
    CD = 25.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 += 1.47+0.25
            self.攻击次数2 = 0
            # self.倍率 *= 1.25
        elif x == 1:
            self.攻击次数 += 1.47+0.44
            self.攻击次数2 = 0
            # self.倍率 *= 1.44
class 技能15(职业主动技能):
    名称 = '压制射击'
    所在等级 = 70
    等级上限 = 40
    基础等级 = 18
    # 基础 = 1254.33
    # 成长 = 141.67
    # 基础2 = 2789.17
    # 成长2 = 314.83
    # 前方乱射攻击力：<data0>%
    data0 = [int(i*1.193) for i in [0, 1638, 1803, 1969, 2136, 2301, 2469, 2636, 2801, 2968, 3134, 3300, 3466, 3632, 3798, 3965, 4130, 4297, 4462, 4629, 4796, 4962, 5128, 5295, 5460, 5627, 5793, 5959, 6125, 6291, 6457, 6624, 6789, 6956, 7121, 7289, 7456, 7621, 7788, 7954, 8120]]
    # 最后射击攻击力：<data1>%
    data1 = [int(i*1.193) for i in [0, 3641, 4009, 4379, 4747, 5118, 5487, 5856, 6225, 6595, 6964, 7334, 7702, 8073, 8441, 8810, 9181, 9549, 9919, 10287, 10658, 11027, 11396, 11766, 12135, 12504, 12874, 13243, 13613, 13981, 14350, 14721, 15089, 15459, 15827, 16198, 16567, 16936, 17306, 17675, 18044]]
    攻击次数 = 20
    攻击次数2 = 1
    CD = 50.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 *= 1.185
            self.攻击次数2 *= 1.50
        elif x == 1:
            self.攻击次数 *= 1.185
            self.攻击次数2 *= 2.30


class 技能16(被动技能):
    名称 = '枪刃改良'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)


class 技能17(职业主动技能):
    名称 = '死亡锁链'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11
    # 快速射击攻击力：<data0>%
    data0 = [int(i*1.293) for i in [0, 5314, 6161, 7009, 7855, 8703, 9551, 10398, 11246, 12093, 12941, 13787, 14634, 15481, 16329, 17176, 18024, 18870, 19718, 20565, 21413, 22260, 23108, 23956, 24801, 25648, 26496, 27343, 28191, 29039, 29886, 30734, 31580, 32428, 33275, 34123, 34969, 35817, 36663, 37511, 38358]]
    攻击次数 = 5
    # 最终射击攻击力：<data1>%
    data1 = [int(i*1.293) for i in [0, 15944, 18487, 21028, 23570, 26111, 28654, 31195, 33737, 36278, 38821, 41364, 43904, 46447, 48988, 51531, 54071, 56614, 59157, 61698, 64240, 66781, 69324, 71866, 74407, 76949, 79491, 82034, 84574, 87117, 89658, 92201, 94741, 97284, 99827, 102368, 104910, 107451, 109994, 112536, 115077]]
    攻击次数2 = 1
    CD = 40.0
    是否有护石 = 1
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1 + 0.375 * 0.94

class 技能18(职业主动技能):
    名称 = '锁链切割'
    所在等级 = 80
    等级上限 = 40
    基础等级 = 13
    # 第1击攻击力：<data0>%
    data0 = [int(i*1.298) for i in [0, 14483, 15953, 17423, 18892, 20362, 21830, 23300, 24770, 26239, 27708, 29178, 30647, 32117, 33587, 35055, 36525, 37994, 39464, 40934, 42402, 43872, 45342, 46811, 48280, 49750, 51219, 52689, 54159, 55627, 57097, 58566, 60036, 61505, 62974, 64444, 65914, 67382, 68852, 70322, 71791]]
    攻击次数 = 1
    # 第2击攻击力：<data1>%
    data1 = [int(i*1.298) for i in [0, 14483, 15953, 17423, 18892, 20362, 21830, 23300, 24770, 26239, 27708, 29178, 30647, 32117, 33587, 35055, 36525, 37994, 39464, 40934, 42402, 43872, 45342, 46811, 48280, 49750, 51219, 52689, 54159, 55627, 57097, 58566, 60036, 61505, 62974, 64444, 65914, 67382, 68852, 70322, 71791]]
    攻击次数2 = 1
    # 第3击攻击力：<data2>%
    data2 = [int(i*1.298) for i in [0, 19311, 21271, 23231, 25189, 27149, 29108, 31068, 33026, 34986, 36945, 38904, 40863, 42823, 44781, 46741, 48700, 50660, 52618, 54578, 56537, 58496, 60455, 62415, 64373, 66333, 68292, 70252, 72211, 74170, 76130, 78088, 80048, 82007, 83967, 85925, 87885, 89844, 91803, 93762, 95722]]
    攻击次数3 = 1
    CD = 45.0
    是否有护石 = 1
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.34


class 技能19(职业主动技能):
    名称 = '血舞祭'
    所在等级 = 85
    等级上限 = 40
    基础等级 = 5
    data0 = [int(i*1.193) for i in [0, 122223, 150567, 178907, 207250, 235592, 263933, 292276, 320618, 348960, 377302, 405645, 433985, 462328, 490669, 519011, 547354, 575695, 604038, 632380, 660722, 689064, 717404, 745747, 774089, 802431, 830773, 859116, 887457, 915800, 944141, 972482, 1000825, 1029166, 1057509, 1085851, 1114193, 1142535, 1170878, 1199219, 1227561]]
    CD = 180

    def 等效百分比(self, 武器类型):
        return self.data0[self.等级] * self.攻击次数 * self.倍率


class 技能20(被动技能):
    名称 = '锁链意志'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 4
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能21(职业主动技能):
    名称 = '毁灭风暴'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 6
    CD = 60.0
    # 合并数据
    # data0 = [int(i*1.00) for i in [0, 22175, 24426, 26677, 28928, 31179, 33430, 35681, 37932, 40183, 42434, 44685, 46936, 49187, 51438, 53689, 55940, 58191, 60442, 62693, 64944, 67195, 69446, 71697, 73948, 76199, 78450, 80701, 82952, 85203, 87454, 89705, 91956, 94207, 96458, 98709, 100960, 103211, 105462, 107713, 109964]]
    # 攻击次数 = 3
    data0 = [int(i*1.193) for i in [0,4069, 4482, 4895, 5308, 5721, 6134, 6546, 6959, 7372, 7785, 8198, 8611, 9024, 9436, 9849, 10262, 10675, 11088, 11501, 11914, 12327, 12739, 13152, 13565, 13978, 14391, 14804, 15217, 15629, 16042, 16455, 16868, 17281, 17694, 18107, 18520, 18932, 19345, 19758, 20171, 20584, 20997, 21410, 21823, 22235, 22648, 23061, 23474, 23887, 24300, 24713, 25125, 25538, 25951, 26364, 26777, 27190, 27603, 28016, 28428, 28841, 29254, 29667, 30080, 30493, 30906, 31318, 31731, 32144, 32557]]
    # 括号内为5个攻击的不同伤害倍率
    攻击次数 = (1.03+1.06+1.09+1.12+1.15)*3
    data1 = [int(i*1.193) for i in [0,33269, 36644, 40020, 43395, 46770, 50145, 53520, 56896, 60271, 63646, 67021, 70396, 73771, 77147, 80522, 83897, 87272, 90647, 94023, 97398, 100773, 104148, 107523, 110899, 114274, 117649, 121024, 124399, 127774, 131150, 134525, 137900, 141275, 144650, 148026, 151401, 154776, 158151, 161526, 164902, 168277, 171652, 175027, 178402, 181777, 185153, 188528, 191903, 195278, 198653, 202029, 205404, 208779, 212154, 215529, 218905, 222280, 225655, 229030, 232405, 235780, 239156, 242531, 245906, 249281, 252656, 256032, 259407, 262782, 266157]]
    攻击次数2 = 1
    data2 = [int(i*1.193) for i in [0,2217, 2442, 2668, 2893, 3118, 3343, 3568, 3793, 4018, 4243, 4468, 4693, 4918, 5143, 5368, 5593, 5818, 6043, 6268, 6493, 6718, 6943, 7168, 7393, 7618, 7843, 8068, 8293, 8518, 8743, 8968, 9193, 9418, 9643, 9868, 10093, 10318, 10543, 10768, 10993, 11218, 11443, 11668, 11893, 12118, 12343, 12568, 12793, 13018, 13243, 13468, 13693, 13918, 14143, 14368, 14593, 14818, 15043, 15268, 15493, 15718, 15943, 16168, 16393, 16618, 16843, 17068, 17293, 17518, 17743]]
    攻击次数3 = 5

class 技能22(职业主动技能):
    名称 = '盛放·绯红花园'
    关联技能 = ['无']
    所在等级 = 100
    等级上限 = 40
    基础等级 = 2
    CD = 290.0
    data0 = [int(i*1.236) for i in [0,3571, 4400, 5228, 6056, 6884, 7713, 8541, 9369, 10197, 11026, 11854, 12682, 13510, 14339, 15167, 15995, 16823, 17652, 18480, 19308, 20136, 20965, 21793, 22621, 23449, 24278, 25106, 25934, 26762, 27591, 28419, 29247, 30075, 30904, 31732, 32560, 33388, 34217, 35045, 35873]]
    攻击次数 = 5
    data1 = [int(i*1.236) for i in [0,4464, 5500, 6535, 7570, 8606, 9641, 10676, 11711, 12747, 13782, 14817, 15853, 16888, 17923, 18959, 19994, 21029, 22065, 23100, 24135, 25171, 26206, 27241, 28277, 29312, 30347, 31382, 32418, 33453, 34488, 35524, 36559, 37594, 38630, 39665, 40700, 41736, 42771, 43806, 44842]]
    攻击次数2 = 6
    data2 = [int(i*1.236) for i in [0,7653, 9428, 11203, 12978, 14753, 16528, 18302, 20077, 21852, 23627, 25402, 27177, 28951, 30726, 32501, 34276, 36051, 37825, 39600, 41375, 43150, 44925, 46700, 48474, 50249, 52024, 53799, 55574, 57349, 59123, 60898, 62673, 64448, 66223, 67997, 69772, 71547, 73322, 75097, 76872]]
    攻击次数3 = 7
    data3 = [int(i*1.236) for i in [0,4464, 5500, 6535, 7570, 8606, 9641, 10676, 11711, 12747, 13782, 14817, 15853, 16888, 17923, 18959, 19994, 21029, 22065, 23100, 24135, 25171, 26206, 27241, 28277, 29312, 30347, 31382, 32418, 33453, 34488, 35524, 36559, 37594, 38630, 39665, 40700, 41736, 42771, 43806, 44842]]
    攻击次数4 = 6
    data4 = [int(i*1.236) for i in [0,6868, 8461, 10054, 11647, 13240, 14832, 16425, 18018, 19611, 21204, 22796, 24389, 25982, 27575, 29167, 30760, 32353, 33946, 35539, 37131, 38724, 40317, 41910, 43503, 45095, 46688, 48281, 49874, 51467, 53059, 54652, 56245, 57838, 59431, 61023, 62616, 64209, 65802, 67394, 68987]]
    攻击次数5 = 13
    data5 = [int(i*1.236) for i in [0,41671, 51334, 60997, 70660, 80323, 89986, 99649, 109311, 118974, 128637, 138300, 147963, 157626, 167289, 176952, 186615, 196278, 205941, 215604, 225267, 234930, 244593, 254255, 263918, 273581, 283244, 292907, 302570, 312233, 321896, 331559, 341222, 350885, 360548, 370211, 379874, 389537, 399199, 408862, 418525]]
    攻击次数6 = 3
    data6 = [int(i*1.236) for i in [0,2976, 3666, 4356, 5047, 5737, 6427, 7117, 7807, 8498, 9188, 9878, 10568, 11259, 11949, 12639, 13329, 14019, 14710, 15400, 16090, 16780, 17470, 18161, 18851, 19541, 20231, 20921, 21612, 22302, 22992, 23682, 24373, 25063, 25753, 26443, 27133, 27824, 28514, 29204, 29894]]
    攻击次数7 = 6

    def 加成倍率(self, 武器类型):
        return 0.0


技能列表 = []
i = 0
while i >= 0:
    try:
        exec('技能列表.append(技能'+str(i)+'())')
        i += 1
    except:
        i = -1

技能序号 = dict()
for i in range(len(技能列表)):
    技能序号[技能列表[i].名称] = i

一觉序号 = 0
二觉序号 = 0
三觉序号 = 0
for i in 技能列表:
    if i.所在等级 == 50:
        一觉序号 = 技能序号[i.名称]
    if i.所在等级 == 85:
        二觉序号 = 技能序号[i.名称]
    if i.所在等级 == 100:
        三觉序号 = 技能序号[i.名称]

护石选项 = ['无']
for i in 技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        护石选项.append(i.名称)

符文选项 = ['无']
for i in 技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        符文选项.append(i.名称)


class 职业属性(角色属性):

    实际名称 = '重霄·漫游枪手·女'
    角色 = '神枪手(女)'
    职业 = '漫游枪手'

    武器选项 = ['左轮枪']

    类型选择 = ['物理百分比']

    类型 = '物理百分比'
    防具类型 = '皮甲'
    防具精通属性 = ['力量']

    主BUFF = 2.25

    def __init__(self):
        基础属性输入(self)
        self.技能栏 = deepcopy(技能列表)
        self.技能序号 = deepcopy(技能序号)

    def 被动倍率计算(self):
        super().被动倍率计算()
        self.技能栏[self.技能序号['致命回射']].基础 = self.技能栏[self.技能序号['致命射击']].等效百分比(
            self.武器类型)*1.25
        self.技能栏[self.技能序号['致命回射']].被动倍率 = self.技能栏[self.技能序号['致命射击']].被动倍率


class 重霄·漫游枪手·女(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 职业属性()
        self.角色属性A = 职业属性()
        self.角色属性B = 职业属性()
        self.一觉序号 = 一觉序号
        self.二觉序号 = 二觉序号
        self.三觉序号 = 三觉序号
        self.护石选项 = deepcopy(护石选项)
        self.符文选项 = deepcopy(符文选项)
